module.exports = function($scope, $resource, $modal, toaster, getDate){
    
    init();
    function init(){
        $scope.fromData = {
            'loading': false,
            'today': getDate(new Date()),
            'selectedList': [], //显示结果使用,
            'total': {}
        };
        $scope.resultList = [
            {'label': '日期', 'value': 'every_date', 'check': false, 'width': '100', 'align': 'text-center', 'more': 1},
            {'label': '产品', 'value': 'sale_code', 'check': true, 'width': '200', 'align': 'text-left', 'more': 'sale_name'},
            {'label': '产品类型', 'value': 'sale_category', 'check': false, 'width': '150', 'align': 'text-center', 'more': 'sale_category_name'},
            {'label': '供应商', 'value': 'up_company_code', 'check': true, 'width': '120', 'align': 'text-left', 'more': 'up_company_name'},
            {'label': '分销商', 'value': 'down_company_code', 'check': true, 'width': '120', 'align': 'text-left', 'more': 'down_company_name'},
            {'label': '销售账号', 'value': 'operation_login_name', 'check': false, 'width': '120', 'align': 'text-left', 'more': 1},
            {'label': '支付类型', 'value': 'payment_type', 'check': false, 'width': '120', 'align': 'text-center', 'more': 'payment_type_name'},
            {'label': '售卖渠道', 'value': 'channel_list_code', 'check': false, 'width': '150', 'align': 'text-center', 'more': 1},
            {'label': '来源', 'value': 'from_app_id', 'check': false, 'width': '100', 'align': 'text-center', 'more': 'from_app_name'},
            {'label': '景区', 'value': 'place_code', 'check': false, 'width': '100', 'align': 'text-center', 'more': 1},
            {'label': '票种', 'value': 'ticket_type', 'check': false, 'width': '120', 'align': 'text-center', 'more': 'ticket_name'},
            {'label': '票种属性', 'value': 'ticket_type_attr', 'check': true, 'width': '120', 'align': 'text-center', 'more': 'ticket_type_attr_name'},
            {'label': '单价', 'value': 'unit_price', 'check': false, 'width': '80', 'align': 'text-center', 'more': 1}
        ];
        $scope.resultShow = [
            {'label': '产品类型', 'value': 'sale_category', 'more': 'sale_category_name'},
            {'label': '供应商', 'value': 'up_company_code',  'more': 'up_company_name'},
            {'label': '分销商', 'value': 'down_company_code', 'more': 'down_company_name'},
            {'label': '支付类型', 'value': 'payment_type', 'more': 'payment_type_name'},
            {'label': '来源', 'value': 'from_app_id', 'more': 'from_app_name'},
            {'label': '景区', 'value': 'place_code', 'more': 'place_code'},
            {'label': '票种', 'value': 'ticket_type', 'more': 'ticket_name'},
            {'label': '票种属性', 'value': 'ticket_type_attr', 'more': 'ticket_type_attr_name'}
        ];
        $scope.filters = {
            'sale_category' : {},
            'up_company_code' : {},
            'down_company_code' : {},
            'payment_type' : {},
            'from_app_id' : {},
            'place_code' : {},
            'ticket_type' : {},
            'ticket_type_attr' : {}
        };

        $scope.date = {
            'lable': $scope.fromData.today,
            'opened': false
        };
        $scope.date1 = {
            'lable': $scope.fromData.today,
            'opened': false
        };
    }

    //查询数据
    $scope.load = function () {
        var list = [];
        $scope.fromData.selectedList = [];

        angular.forEach($scope.resultList, function(item){
            if(item.check){
                list.push(item.value);
                $scope.fromData.selectedList.push(item);
            }
        });
        var para = {
            'start_time' : getDate($scope.date.lable),
            'end_time' : getDate($scope.date1.lable),
            'group_rule': list.toString()
        };
        $scope.fromData.loading = true;
        $scope.fromData.total.price = 0;
        $scope.fromData.total.buy = 0;
        $scope.fromData.total.used = 0;
        $scope.fromData.total.back = 0;

        $resource('/api/as/tc/ticketorder/newsalestatisticslist', {}, {}).save(para, function (res) {
            if (res.errcode === 0) {
                $scope.saleList = res.data;
                angular.forEach($scope.saleList, function(item){
                    if(item.sale_category_name){
                        $scope.filters.sale_category[item.sale_category_name] = true;
                    }
                    if(item.up_company_name){
                        $scope.filters.up_company_code[item.up_company_name] = true;
                    }
                    if(item.down_company_name){
                        $scope.filters.down_company_code[item.down_company_name] = true;
                    }
                    if(item.payment_type_name){
                        $scope.filters.payment_type[item.payment_type_name] = true;
                    }
                    if(item.from_app_name){
                        $scope.filters.from_app_id[item.from_app_name] = true;
                    }
                    if(item.place_code){
                        $scope.filters.place_code[item.place_code] = true;
                    }
                    if(item.ticket_name){
                        $scope.filters.ticket_type[item.ticket_name] = true;
                    }
                    if(item.ticket_type_attr_name){
                        $scope.filters.ticket_type_attr[item.ticket_type_attr_name] = true;
                    }
                    item.show = true;
                    item.row_key = '';
                    item.row_not_show_str ='';
                    angular.forEach($scope.resultShow, function(result){
                        item.row_key += '#' + item[result.more] + '#' + result.value + ',';
                    });
                    $scope.fromData.total.price += item.down_price;
                    $scope.fromData.total.buy += item.buy;
                    $scope.fromData.total.used += item.used;
                    $scope.fromData.total.back += item.back;
                });
                $scope.fromData.loading = false;
            } else {
                toaster.error({title: '', body: '查询统计失败'});
            }
        });
    };

    //筛选过滤条件
    $scope.filterType = function(key, value, filters, aa){
        $scope.fromData.total.price = 0;
        $scope.fromData.total.buy = 0;
        $scope.fromData.total.used = 0;
        $scope.fromData.total.back = 0;
        filters[key] = !value;
        angular.forEach($scope.saleList, function(item){
            if(item.row_key.indexOf('#' + key + '#' + aa) != -1){
                if(value){
                    item.row_not_show_str += '#' + key + '#' + aa + ',';
                    item.show = !value;
                } else {
                    item.row_not_show_str = item.row_not_show_str.replace('#'+ key + '#' + aa + ',', '');
                    if(!item.row_not_show_str){
                        item.show = !value;
                    }
                }
            }
            if(item.show){
                $scope.fromData.total.price += item.down_price;
                $scope.fromData.total.buy += item.buy;
                $scope.fromData.total.used += item.used;
                $scope.fromData.total.back += item.back;
            }
        });
    }

    //打开日历空间,选择时间
    $scope.dateOpen = function ($event, item) {
        $event.preventDefault();
        $event.stopPropagation();
        item.opened = true;
    };

    $scope.setStyle = function(item){
        return {"min-width": item.width + 'px'};
    }

};